package com.study.talk.ui.view

import android.content.Context
import android.util.AttributeSet
import android.widget.GridView
import com.study.talk.utils.ActivityUtil.isPad

class CustomGridView : GridView {
    constructor(context: Context) : super(context)

    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
        context,
        attrs,
        defStyleAttr
    )

    constructor(
        context: Context,
        attrs: AttributeSet,
        defStyleAttr: Int,
        defStyleRes: Int
    ) : super(context, attrs, defStyleAttr, defStyleRes)


    /**
     * 其中onMeasure函数决定了组件显示的高度与宽度；
     * MeasureSpec.makeMeasureSpec函数中第一个参数指布局空间的大小，第二个参数是布局模式
     * MeasureSpec.AT_MOST的意思就是子控件需要多大的控件就扩展到多大的空间
     */
    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        isPad(context)
        val expandSpec = MeasureSpec.makeMeasureSpec(
            Int.MAX_VALUE shr 2,
            MeasureSpec.AT_MOST
        )
        if (isPad(context)) {
            super.onMeasure(widthMeasureSpec / 2, expandSpec)
        } else {
            super.onMeasure(widthMeasureSpec, expandSpec)
        }
    }
}
